package br.com.vilababy.sigvb.modelo;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Calendar;
import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;

import br.com.vilababy.sigvb.constantes.HorarioEnum;
import br.com.vilababy.sigvb.constantes.TurmaEnum;

@Entity
public class Periodo extends SIGVBModelo implements Serializable {
	
	/**
	 * @author Diego Patrick da Silva Santos
	 */
	private static final long serialVersionUID = 1L;
	
	@Id @GeneratedValue
	@Column(name="codigo_periodo")
	private Long id;
	@Column(nullable=false)
	private TurmaEnum turma;
	@Column(nullable=false)
	private HorarioEnum horario;
	@Column(nullable=false)
	private String descricao;
	@OneToMany(mappedBy="periodo")
	private List<Pagamento> pagamentos;
	@ManyToOne
	@JoinColumn(nullable=false)
	private Aluno aluno;
	@Column(name="data_inicio", nullable=false)
	private Calendar dataInicio;
	@Column(name="data_fim")
	private Calendar dataFim;
	@Column(name="valor_mensalidade", nullable=false)
	private BigDecimal valorMensalidade;
	@Column(name="valor_desconto_1")
	private BigDecimal valorPrimeiroDesconto;
	@Column(name="valor_desconto_2")
	private BigDecimal valorSegundoDesconto;
	
	public Long getId() {
		return id;
	}
	public void setId(Long id) {
		this.id = id;
	}
	public TurmaEnum getTurma() {
		return turma;
	}
	public void setTurma(TurmaEnum turma) {
		this.turma = turma;
	}
	public HorarioEnum getHorario() {
		return horario;
	}
	public void setHorario(HorarioEnum horario) {
		this.horario = horario;
	}
	public Calendar getDataInicio() {
		return dataInicio;
	}
	public void setDataInicio(Calendar dataInicio) {
		this.dataInicio = dataInicio;
	}
	public Calendar getDataFim() {
		return dataFim;
	}
	public void setDataFim(Calendar dataFim) {
		this.dataFim = dataFim;
	}
	public BigDecimal getValorMensalidade() {
		return valorMensalidade;
	}
	public void setValorMensalidade(BigDecimal valorMensalidade) {
		this.valorMensalidade = valorMensalidade;
	}
	public final String getDescricao() {
		return descricao;
	}
	public final void setDescricao(String descricao) {
		this.descricao = descricao;
	}
	public final BigDecimal getValorPrimeiroDesconto() {
		return valorPrimeiroDesconto;
	}
	public final void setValorPrimeiroDesconto(BigDecimal valorPrimeiroDesconto) {
		this.valorPrimeiroDesconto = valorPrimeiroDesconto;
	}
	public final BigDecimal getValorSegundoDesconto() {
		return valorSegundoDesconto;
	}
	public final void setValorSegundoDesconto(BigDecimal valorSegundoDesconto) {
		this.valorSegundoDesconto = valorSegundoDesconto;
	}
	public final Aluno getAluno() {
		return aluno;
	}
	public final void setAluno(Aluno aluno) {
		this.aluno = aluno;
	}

	
}
